<?php
    include 'admin_logueado.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<title>Readme</title>
		
		<link rel="shortcut icon" href="img/favicon.ico" type="image/x-ico"/>
		
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
		
		<!-- Bootstrap -->
		<link href="librerias/css/bootstrap.min.css" rel="stylesheet" media="screen"/>
		<link rel="stylesheet" type="text/css" href="css/ajustes.css" />
		<link rel="stylesheet" type="text/css" href="css/cambiando_estilo.css" />
		
		
		 <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />
		 <link rel="stylesheet" href="/resources/demos/style.css" />
		 
		  <script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script>
		  <script src="librerias/js/bootstrap.min.js" type="text/javascript"></script>
		 <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js" type="text/javascript"></script>
		  
	
		<script src="js/loadXML.js" type="text/javascript"></script>
		<script src="js/scripts.js" type="text/javascript"></script>
		<script src="js/chequear_estilo.js" type="text/javascript"></script>
		<script src="js/autores_js.js" type="text/javascript"></script>
		
		<link rel="stylesheet" type="text/css" href="css/estilo1.css" id="css_que_cambia"></link>
		<link rel="stylesheet" type="text/css" href="css/autores_css.css"></link>
		
	</head>

	<body>
		
            
            
		<!-- Menú superior -->
		<!--=========== BOTONES DE CAMBIO DE ESTILO ================-->
		<div class="row-fluid">
                    <div class="span12">
				<?php 
                                if(admin_logueado()){
                                   $url_actual = $_SERVER['REQUEST_URI'];
                                   echo "<div id='link_logout'><a href='logout.php?url=$url_actual'>logout</a></div>";
                                }
                            ?>
                        <!--form-->
                        <div id="radio">
                            <input type="radio" id="radio1" name="radio" onclick="cambiarCss1()"/>
                            <label for="radio1" id="label1">Style 1</label>
                            <input type="radio" id="radio2" name="radio" onclick="cambiarCss2()"/>
                            <label for="radio2" id="label2">Style 2</label>
                        </div>
                        <!--/form-->
                                                                    
                    </div>
		</div>
		<!--=========== ENCABEZADO ================-->
		<div class="container">
		<div class="row-fluid" id="encabezado_">
		
			<div class="span12 barra_s" id="barra_bot_log">
				<!-- logo-->
				<div class="span4 well logo_s">
					<img id="logo_img" src="img/LOGO1ELI.png" alt="logo"/>
				</div>
				<!-- botones -->
				<div class="span8 well botones_s">
					<ul class="lista_botones">
						<li class="boton_l"><a href="autores.php" class="links" >Autores</a></li>
						<li class="boton_l" id="boton_readme"><a href="readme.php" class="links">Readme</a></li>
						
					</ul>
				</div>
				
			</div>
		</div>
		
		<div class="row-fluid">
			<div class="span12">
				<ul class="breadcrumb">
					<li><a href="index.php" class="breadcrumb_link">Home</a> <span class="divider">/</span></li>
					<li class="active"><span class="breadcrumb_actual">Readme</span></li>
				</ul>
			</div>
		</div>
		</div>
		
		
		<!--=========== CUERPO AUTORES================-->
		 
                
                
		 <div class="container">
		
			<div class="row-fluid">
				<div class="span12 well" id="cuadro_readme">
					<h3>Readme</h3>
					<ul class="lista_readme">

						<li class="item_readme" >
							Con respecto a las validaciones: CUANDO LAS HAGAMOS RETOCAR ESTO <br />
							
							<br />
							Validación de CSS:  <br />
							-	Se realizó a través de: <a class="link_readme" href="http://jigsaw.w3.org/css-validator/">http://jigsaw.w3.org/css-validator/</a> <br />
							-	Archivos validados correctamente: admin.css, ajustes.css, ajustes_index.css, autores.css, cambiando_estilo.css, css_php.php, css_php_propiedad.php, estilo1.css, estilo2.css, propiedades.css. <br />
							<br />
							Validación de los HTML generados <br />
							-	Se subieron a <a class="link_readme" href="http://validator.w3.org/">http://validator.w3.org/ </a> archivos conteniendo el código devuelto por el servidor apache (xampp en nuestro caso) al navegador firefox. El código fue accedido a través de la opción 'view page source' y posteriormente guardado con extensión html para ser subido. <br /><br />
							
							*	Observaciones	<br />
							. Los archivos index.php y propiedad.php no validaron completamente debido a que algunos atributos agregados por librerías no son reconocidos por el validador.<br />
							. propiedad.php:<br />
							..   Atributos agregados por Bootstrap: "data-target", "data-slide-to", "data-href", "data-width", "data-num-posts".<br />
							..   Atributos agregados por script de facebook: "data-send", "data-layout", "data-show-faces".<br />

							. index.php:<br />
							..   Atributos agregados por Bootstrap: "data-target", "data-slide-to".<br /><br />
							
							*	Archivos validados correctamente: propiedades.php, autores.php, readme.php<br />
							<br />
						</li>
			
						<li class="item_readme" >
						Con respecto a la bdd<br /><br />

						Se utilizan las siguientes tablas:<br />
						<br />
						-	propiedades.<br />
						*	Llave primaria: id_propiedad.<br />
<br />
						-	operaciones.<br />
						*	 Llave primaria: id_operacion.<br />
<br />
						-	categorias. <br />
						*Llave primaria: id_categoria.<br />
<br />
						-	destacados. <br />
						*Llave primaria: id_propiedad.<br />
<br />
						-	favoritos.<br />
						*	Esta tabla almacena una entrada cada vez que un usuario marca una propiedad como favorita.<br />
						*	Llave primaria: (id_propiedad, id_usuario).<br />
<br />
						-	usuarios.<br />
						*	Llave primaria: id_usuario.<br />
<br />
						-	estilo.<br />
						*	Esta tabla es utilizada para almacenar cambios elegidos por el administrador.<br />
						*	Por ejemplo, el número de paginado, o la distribución de la información en propiedades.php, etc.<br />
						*	Llave primaria: estilo.<br />
<br />
						</li>
			
						<li class="item_readme" >
						Manejo de usuarios.<br /><br />

						-	Se tiene un usuario administrador.<br />
						-	Se tendrán usuarios clientes. Cada vez que la pagina es abierta por primera vez, se generará un id de usuario nuevo para el usuario que ingresó a la página consultando en la tabla correspondiente el último id de usuario utilizado.<br />
						-	Por ejemplo, si se la página es abierta en dos navegadores diferentes se tendrán dos usuarios diferentes.<br />
						</li>		
			
						<li class="item_readme" >
						Manejo de sesión admin<br /><br />
						
						Para el manejo de sesiones del administrador se utilizan variables de sesión accedidas al invocar la función session_start(). <br />
						Estas se usan para controlar que el admin este logueado cuando se accede a las opciones de administración de la página, impidiendole ingresar a las mismas sin autorización (por ejemplo si quiere accederlas luego del logout a través del historial). <br />
						También son usadas para mostrar la opción de logout o login según el estado en el que se encuentra la sesión.<br />
						Para loguearse como administrador= usuario: admin, password:admin.
						</li>	
					
						<li class="item_readme" >
						Manejo de modificaciones admin<br /><br />
						
						 Un administrador puede realizar las siguientes modificaciones:<br /><br />
                           -   Obtener un buckup<br />
                           -   Modificar el paginado, es decir la cantidad de propiedades mostradas por página.<br />
                           -   Modificar orden por defecto con el cual son mostradas las propiedades<br />
                           -   Cambiar la distribución de la información en propiedad.php. Al seleccionar las diversas opciones se visualiza un panel ejemplo con los cambios realizados.<br />
                           -   Cambiar la distribución de la información en propiedades.php Al seleccionar las diversas opciones se visualiza un panel ejemplo con los cambios realizados.<br />
                           -   Modificar el password.<br />
                              <br />
                          Aclaración: <br />
                          En las modificaciones en la distribución de la información, al existir un panel ejemplo donde se genera una vista previa de los cambios, se permite una opción de "descartar", además de permitir guardar los cambios.<br />
                          Debido a esto, si el usuario intenta abandonar la página actual sin haber descartado o guardado los cambios, se informará de manera adecuado un intento de abandono de página perdiendo cambios realizados.<br /><br />
						  
						Los valores de las opciones que le son permitidas modificar al admin son almacenadas en la tabla 'estilos' de la bd 'em_bd.sqlite'. <br /><br />
						Estos valores son consultados en los phps que devuelven información formateada para ser presentada al usuario ya sea en el filtrado de la información o en la distibución de los bloques que componen la página. <br />
						En el caso de páginas como propiedades.php y propiedad.php se efectua alterando css de manera dinámica mediante php.
						</li>
						
						
						<li class="item_readme" >
						La aplicación corre en los distintos navegadores. ALGO PARA ACLARAR?
                		</li>
                                            <li class="item_readme" >
                                                Permisos<br /><br />
                            Se usan archivos htacces para, mediante directivas, establecer permisos de manera de impedir el acceso a la carpeta que contiene la base de datos, así como también evitar el indexado del directorio del sitio y de todos los subdirectorios que lo componen.<br /><br />
                            </li>
                        <li class="item_readme" >
                         Uso de Ajax.<br /><br />
						 												 
						. Se usa ajax a través de la librería jquery.
						. En propiedades.php es usado para efectuar las consultas al servidor de manera asincronica para luego agregar los resultados al html con javascript y dom.
						. En admin.php se utiliza ajax para hacer consultas a la bd y establecer el valor de algunas entradas en algunas de las tablas al cambiar alguna opción de admin.
						. En index.php y admin.php ajax es usado para consultar y validar el par usuario/password en la bd que se encuentra en el servidor.
						. En propiedad.php ajax es utilizado para traer las imagenes en tamaño grande del servidor al hacer click en algunas de las miniaturas (thumbs) del 'carousel'. Esto se hace de manera implicita al hacer uso de una extensión/plugin para jquery llamada fancy-box que nos permite abstraernos de hacer estas consultas de manera manual.

						 
						</li>
                                            
                        
                                            
                         
                                            
                                                <li class="item_readme" >
                                                Se necesita acceso a internet para ver toda la funcionalidad correctamente dado que algunas librerías son incluidas mediante su URL.    
                                                </li>    
                                                
                                                <li class="item_readme" >
						Se hizo uso de las siguientes librerias: jquery, jquery-ui, bootstrap, fancy-box
						</li>
                                                <li class="item_readme" > Consulta por url:</br> Síntaxis para efectuar consultas de propiedades a través de la url en la que se devuelve el resultado en un html plano:</br> &lsaquo;dominio de la página&rsaquo;/buscar.php[? expr]</br>  donde expr puede ser alguna de las siguiente opciones (separados por & si se agregan varias)</br> operacion= (venta|alquiler)</br> categoria= (dpto|casa)</br> precio = &lsaquo;float mayor a cero&rsaquo;  (obs: las propiedades devueltas serán aquellas con un valor menor igual al precio ingresado)</br> dormitorio = &lsaquo; entero mayor a cero&rsaquo;</br> antiguedad =  &lsaquo; entero mayor a cero&rsaquo;  (obs: las propiedades devueltas serán aquellas con una antigüedad menor igual a la ingresada)</br> direccion = &lsaquo;string sin necesidad de comillas&rsaquo;</br></br> </li>
                                                <li class="item_readme" >
                                                Seguridad en la bd:</br>
. El password de los usuarios es almacenado encriptado haciendo uso del algortimo SHA-1 (MD5 no fue utilizado debido a que ya es considerado vulnerable).</br>
. Para las consultas efectuadas por un usuario que no sea admin, la bd es accedida con permiso de solo lectura.</br></br>
                                                </li>
						<li class="item_readme" >
							Cuestiones ya mencionadas en el proyecto anterior: <br /><br />
                                                        -   Se agregó a la funcionalidad del proyecto pedida, un filtrado conjunto.<br />
                                                            Esto es, además de permitir realizar filtros con diversos criterios, se puede hacer una selección de más de un criterio y filtrar teniendo en cuenta toda la información.<br />
						
							-   Se agrego como adicional a la funcionalidad requerida del proyecto, que el navegador recuerde las propiedades seleccionadas como favoritas la siguiente vez que el mismo usuario accede a la página.<br />
						
							-   Para seleccionar una propiedad como favorita, dentro de "propiedad.html" se debe presionar la estrella.<br />
						
							-   El xsd correspondiente a las prpiedades no valida con su respectivo xml debido a un atributo presente en el xsd dado("use=required").<br />
						</li> 
                                         
					</ul>
				</div>
			</div>
		
		
		<!--=========== PIE================-->
		<div class="row-fluid">
			<div class="span12 well pie">
				
					<div class="span2 offset10">
						&copy; IAW 2013
					</div>
					
				
			</div>
		</div>	
		</div>
		
		
			
	</body>
</html>
